<?php

namespace CHOMP\CRUDSGIBundle\Entity;

use Doctrine\ORM\Mapping as ORM;
use Symfony\Component\Validator\Constraints as Assert;

/**
  * @ORM\Entity(repositoryClass="CHOMP\CRUDSGIBundle\Entity\TimesheetRepository")
  * @ORM\Table(name="timesheet")
 */
class Timesheet
{
    /**
     * @ORM\Id
	 * @ORM\Column(type="integer")
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    protected $id;

    /**
     * @ORM\Column(type="integer", length=10, nullable=false)
	 * @Assert\NotNull(message = "El campo no puede estar en blanco.")
     */
    protected $horas;

    /**
     * @ORM\Column(type="string", length=255, nullable=false)
	 * @Assert\NotBlank(
	 *       message = "El password no puede estar vacío."
	 *		)
	 * @Assert\Length(
     *      min = "4",
     *      max = "255",
	 *      minMessage = "El nombre debe tener al menos {{ limit }} caracteres.",
     *      maxMessage = "El nombre debe tener {{ limit }} caracteres como máximo."
	 *		)
     */
    protected $descripcion;

    /**
     * @ORM\Column(type="datetime", nullable=false)
	 * @Assert\NotNull(message = "El campo no puede estar en blanco.")
     */
    protected $fecha;

	/**
	 * @ORM\ManyToOne(targetEntity="CuentaAnalitica", inversedBy="timesheets")
     * @ORM\JoinColumn(name="cuentaAnalitica_id", referencedColumnName="id", nullable=false)
	 * @Assert\NotNull(message = "El campo no puede estar en blanco.")
     **/
    protected $cuentaAnalitica;
	
	/**
	 * @ORM\ManyToOne(targetEntity="Usuario", inversedBy="timesheets")
     * @ORM\JoinColumn(name="usuario_id", referencedColumnName="id", nullable=false)
	 * @Assert\NotNull(message = "El campo no puede estar en blanco.")
     **/
    protected $usuario;
	
	/**
     * @ORM\ManyToOne(targetEntity="Incidente", inversedBy="timesheets")
     * @ORM\JoinColumn(name="incidente_id", referencedColumnName="id", nullable=false)
	 * @Assert\NotNull(message = "El campo no puede estar en blanco.")
     */
    private $incidente;

	

    /**
     * Get id
     *
     * @return integer 
     */
    public function getId()
    {
        return $this->id;
    }

    /**
     * Set tiempo
     *
     * @param string $tiempo
     * @return Timesheet
     */
    public function setTiempo($tiempo)
    {
        $this->tiempo = $tiempo;
    
        return $this;
    }

    /**
     * Get tiempo
     *
     * @return string 
     */
    public function getTiempo()
    {
        return $this->tiempo;
    }

    /**
     * Set descripcion
     *
     * @param string $descripcion
     * @return Timesheet
     */
    public function setDescripcion($descripcion)
    {
        $this->descripcion = $descripcion;
    
        return $this;
    }

    /**
     * Get descripcion
     *
     * @return string 
     */
    public function getDescripcion()
    {
        return $this->descripcion;
    }

    /**
     * Set fecha
     *
     * @param \DateTime $fecha
     * @return Timesheet
     */
    public function setFecha($fecha)
    {
        $this->fecha = $fecha;
    
        return $this;
    }

    /**
     * Get fecha
     *
     * @return \DateTime 
     */
    public function getFecha()
    {
        return $this->fecha;
    }

    /**
     * Set time
     *
     * @param \DateTime $time
     * @return Timesheet
     */
    public function setTime($time)
    {
        $this->time = $time;
    
        return $this;
    }

    /**
     * Get time
     *
     * @return \DateTime 
     */
    public function getTime()
    {
        return $this->time;
    }

    /**
     * Set incidente
     *
     * @param \CHOMP\CRUDSGIBundle\Entity\Incidente $incidente
     * @return Timesheet
     */
    public function setIncidente(\CHOMP\CRUDSGIBundle\Entity\Incidente $incidente = null)
    {
        $this->incidente = $incidente;
    
        return $this;
    }

    /**
     * Get incidente
     *
     * @return \CHOMP\CRUDSGIBundle\Entity\Incidente 
     */
    public function getIncidente()
    {
        return $this->incidente;
    }

    /**
     * Set cuentaAnalitica
     *
     * @param \CHOMP\CRUDSGIBundle\Entity\CuentaAnalitica $cuentaAnalitica
     * @return Timesheet
     */
    public function setCuentaAnalitica(\CHOMP\CRUDSGIBundle\Entity\CuentaAnalitica $cuentaAnalitica = null)
    {
        $this->cuentaAnalitica = $cuentaAnalitica;
    
        return $this;
    }

    /**
     * Get cuentaAnalitica
     *
     * @return \CHOMP\CRUDSGIBundle\Entity\CuentaAnalitica 
     */
    public function getCuentaAnalitica()
    {
        return $this->cuentaAnalitica;
    }

    /**
     * Set usuario
     *
     * @param \CHOMP\CRUDSGIBundle\Entity\Usuario $usuario
     * @return Timesheet
     */
    public function setUsuario(\CHOMP\CRUDSGIBundle\Entity\Usuario $usuario = null)
    {
        $this->usuario = $usuario;
    
        return $this;
    }

    /**
     * Get usuario
     *
     * @return \CHOMP\CRUDSGIBundle\Entity\Usuario 
     */
    public function getUsuario()
    {
        return $this->usuario;
    }

    /**
     * Set horas
     *
     * @param integer $horas
     * @return Timesheet
     */
    public function setHoras($horas)
    {
        $this->horas = $horas;
    
        return $this;
    }

    /**
     * Get horas
     *
     * @return integer 
     */
    public function getHoras()
    {
        return $this->horas;
    }
}